package com.hz.ruoyifarmbase.farm.domain.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hz.ruoyifarmbase.farm.domain.AgrBaseBatch;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.AgrBaseEntity;
import lombok.Data;
import lombok.ToString;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * @author 侯文波
 * @date 2025/3/7 9:29
 * @description:
 */
@Data
@ToString
public class AgrBatchBreedVo extends AgrBaseBatch {

    /**  批次id  */
    @TableId(value = "batch_id", type = IdType.AUTO)
    private Long batchId;

    /**  批次名称  */
    @Excel(name = "批次名称")
    private String batchName;


    @Excel(name = "地块id")
    private Long plotsId;

    @Excel(name = "负责人")
    private String primaryPerson;

    /**  地块名称  */
    @Excel(name = "地块名称")
    private String plotsName;
    @Excel(name = "品种id")
    private Long breedId;
    @Excel(name = "种质类型id")
    private Long typeId;

    /**  品种名称  */
    @Excel(name = "品种名称")
    private String breedName;

    /**  品种图片  */
    @Excel(name = "品种图片")
    private String breedImg;

    /**  批次状态  */
    @Excel(name = "批次状态")
    private Integer status;

    /**  计划开始时间  */
    @Excel(name = "计划开始时间")
    private String startTime;

    /**  计划结束时间  */
    @Excel(name = "计划结束时间")
    private String endTime;


    /**  创建时间  */
    @Excel(name = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;


    /**  更新时间  */
    @Excel(name = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /** 搜索值 */
    @JsonIgnore
    @TableField(exist = false)
    private String searchValue;

    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(exist = false)
    private Map<String, Object> params;

    public Long getBatchId() {
        return batchId;
    }

    public void setBatchId(Long batchId) {
        this.batchId = batchId;
    }

    public String getBatchName() {
        return batchName;
    }

    public void setBatchName(String batchName) {
        this.batchName = batchName;
    }

    public Long getPlotsId() {
        return plotsId;
    }

    public void setPlotsId(Long plotsId) {
        this.plotsId = plotsId;
    }

    public String getPrimaryPerson() {
        return primaryPerson;
    }

    public void setPrimaryPerson(String primaryPerson) {
        this.primaryPerson = primaryPerson;
    }

    public String getPlotsName() {
        return plotsName;
    }

    public void setPlotsName(String plotsName) {
        this.plotsName = plotsName;
    }

    public Long getBreedId() {
        return breedId;
    }

    public void setBreedId(Long breedId) {
        this.breedId = breedId;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public String getBreedName() {
        return breedName;
    }

    public void setBreedName(String breedName) {
        this.breedName = breedName;
    }

    public String getBreedImg() {
        return breedImg;
    }

    public void setBreedImg(String breedImg) {
        this.breedImg = breedImg;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getSearchValue() {
        return searchValue;
    }

    public void setSearchValue(String searchValue) {
        this.searchValue = searchValue;
    }

    public Map<String, Object> getParams() {
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }
}
